package kr.salebeans.cm.provider.sale;

import java.util.List;
import java.util.Map;

import kr.salebeans.cm.domain.sale.Sale;
import kr.salebeans.cm.sale.search.InteSaleSearchCond;

public interface SaleProvider {

    /**
     *======================================================
     * @method  : SaleProvider - createSale 
     * @author  : bgkang
     * @since   : 2012. 11. 14.
     * @return  : Sale
     * @param sale
     * @return
     * @note    : 매출등록
     *======================================================
     */
    public Sale createSale(Sale sale);

    /**
     *======================================================
     * @method  : SaleProvider - updateSale 
     * @author  : bgkang
     * @since   : 2012. 11. 14.
     * @return  : Sale
     * @param sale
     * @return
     * @note    : 매출수정
     *======================================================
     */
    public Sale updateSale(Sale sale);

    /**
     *======================================================
     * @method  : SaleProvider - retrieveSale 
     * @author  : bgkang
     * @since   : 2012. 11. 14.
     * @return  : Sale
     * @param saleId
     * @return
     * @note    : 판매정보상세조회
     *======================================================
     */
    public Sale retrieveSale(long saleId);

    /**
     *======================================================
     * @method  : SaleProvider - retrieveInteSaleList 
     * @author  : bgkang
     * @since   : 2012. 11. 14.
     * @return  : Map<String,Object>
     * @param inteSaleSearchCond
     * @return
     * Key : DAY, CUSTOMER_COUNT, SALE_AMOUNT
     * @note    : 통합매출정보조회
     *======================================================
     */
    public List<Map<Integer, Object>> retrieveInteSaleList(InteSaleSearchCond inteSaleSearchCond);
}
